package com.tanklab.signature.eth.contract;

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import org.web3j.abi.TypeReference;
import org.web3j.abi.datatypes.Function;
import org.web3j.abi.datatypes.Type;
import org.web3j.abi.datatypes.Utf8String;
import org.web3j.abi.datatypes.generated.Bytes32;
import org.web3j.abi.datatypes.generated.Uint256;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.RemoteCall;
import org.web3j.protocol.core.RemoteFunctionCall;
import org.web3j.protocol.core.methods.response.TransactionReceipt;
import org.web3j.tuples.generated.Tuple10;
import org.web3j.tuples.generated.Tuple2;
import org.web3j.tuples.generated.Tuple8;
import org.web3j.tx.Contract;
import org.web3j.tx.TransactionManager;
import org.web3j.tx.gas.ContractGasProvider;

/**
 * <p>Auto generated code.
 * <p><strong>Do not modify!</strong>
 * <p>Please use the <a href="https://docs.web3j.io/command_line.html">web3j command line tools</a>,
 * or the org.web3j.codegen.SolidityFunctionWrapperGenerator in the
 * <a href="https://github.com/web3j/web3j/tree/master/codegen">codegen module</a> to update.
 *
 * <p>Generated with web3j version 5.0.0.
 */
@SuppressWarnings("rawtypes")
public class Abroad extends Contract {
    public static final String BINARY = "608060405234801561001057600080fd5b50612505806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632ce741211461006757806338fbba1f146100985780634c829953146100c957806356cf953814610100578063a3eeb5191461011c578063c5855c5414610155575b600080fd5b610081600480360381019061007c9190611743565b610171565b60405161008f929190611824565b60405180910390f35b6100b260048036038101906100ad9190611743565b610481565b6040516100c0929190611824565b60405180910390f35b6100e360048036038101906100de9190611743565b610943565b6040516100f798979695949392919061186d565b60405180910390f35b61011a60048036038101906101159190611933565b610bc1565b005b61013660048036038101906101319190611743565b610d2a565b60405161014c9a99989796959493929190611af2565b60405180910390f35b61016f600480360381019061016a9190611bbf565b61114c565b005b60606000806000846040516101869190611d3d565b908152602001604051809103902060405180610100016040529081600082015481526020016001820180546101ba90611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546101e690611d83565b80156102335780601f1061020857610100808354040283529160200191610233565b820191906000526020600020905b81548152906001019060200180831161021657829003601f168201915b5050505050815260200160028201805461024c90611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461027890611d83565b80156102c55780601f1061029a576101008083540402835291602001916102c5565b820191906000526020600020905b8154815290600101906020018083116102a857829003601f168201915b5050505050815260200160038201548152602001600482015481526020016005820180546102f290611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90611d83565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b5050505050815260200160068201805461038490611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546103b090611d83565b80156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b50505050508152602001600782015481525050905061041f8160000151611269565b816020015182604001516104368460600151611269565b6104438560800151611269565b8560a001518660c001516040516020016104639796959493929190611e00565b6040516020818303038152906040528160e001519250925050915091565b60606000806001846040516104969190611d3d565b908152602001604051809103902060405180610140016040529081600082015481526020016001820180546104ca90611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546104f690611d83565b80156105435780601f1061051857610100808354040283529160200191610543565b820191906000526020600020905b81548152906001019060200180831161052657829003601f168201915b5050505050815260200160028201805461055c90611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461058890611d83565b80156105d55780601f106105aa576101008083540402835291602001916105d5565b820191906000526020600020905b8154815290600101906020018083116105b857829003601f168201915b505050505081526020016003820180546105ee90611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90611d83565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050815260200160048201805461068090611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac90611d83565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b5050505050815260200160058201805461071290611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461073e90611d83565b801561078b5780601f106107605761010080835404028352916020019161078b565b820191906000526020600020905b81548152906001019060200180831161076e57829003601f168201915b505050505081526020016006820180546107a490611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546107d090611d83565b801561081d5780601f106107f25761010080835404028352916020019161081d565b820191906000526020600020905b81548152906001019060200180831161080057829003601f168201915b5050505050815260200160078201805461083690611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461086290611d83565b80156108af5780601f10610884576101008083540402835291602001916108af565b820191906000526020600020905b81548152906001019060200180831161089257829003601f168201915b505050505081526020016008820154815260200160098201548152505090506108db8160000151611269565b81602001518260400151836060015184608001518560a001518660c001518760e0015161090c896101000151611269565b60405160200161092499989796959493929190611ea7565b6040516020818303038152906040528161012001519250925050915091565b60008180516020810182018051848252602083016020850120818352809550505050505060009150905080600001549080600101805461098290611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90611d83565b80156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b505050505090806002018054610a1090611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c90611d83565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b505050505090806003015490806004015490806005018054610aaa90611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad690611d83565b8015610b235780601f10610af857610100808354040283529160200191610b23565b820191906000526020600020905b815481529060010190602001808311610b0657829003601f168201915b505050505090806006018054610b3890611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6490611d83565b8015610bb15780601f10610b8657610100808354040283529160200191610bb1565b820191906000526020600020905b815481529060010190602001808311610b9457829003601f168201915b5050505050908060070154905088565b6000898989898989898989604051602001610be499989796959493929190611f9f565b6040516020818303038152906040528051906020012090506040518061014001604052808b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281525060018c604051610c529190611d3d565b9081526020016040518091039020600082015181600001556020820151816001019081610c7f91906121d2565b506040820151816002019081610c9591906121d2565b506060820151816003019081610cab91906121d2565b506080820151816004019081610cc191906121d2565b5060a0820151816005019081610cd791906121d2565b5060c0820151816006019081610ced91906121d2565b5060e0820151816007019081610d0391906121d2565b50610100820151816008015561012082015181600901559050505050505050505050505050565b600181805160208101820180518482526020830160208501208183528095505050505050600091509050806000015490806001018054610d6990611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9590611d83565b8015610de25780601f10610db757610100808354040283529160200191610de2565b820191906000526020600020905b815481529060010190602001808311610dc557829003601f168201915b505050505090806002018054610df790611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2390611d83565b8015610e705780601f10610e4557610100808354040283529160200191610e70565b820191906000526020600020905b815481529060010190602001808311610e5357829003601f168201915b505050505090806003018054610e8590611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb190611d83565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b505050505090806004018054610f1390611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3f90611d83565b8015610f8c5780601f10610f6157610100808354040283529160200191610f8c565b820191906000526020600020905b815481529060010190602001808311610f6f57829003601f168201915b505050505090806005018054610fa190611d83565b80601f0160208091040260200160405190810160405280929190818152602001828054610fcd90611d83565b801561101a5780601f10610fef5761010080835404028352916020019161101a565b820191906000526020600020905b815481529060010190602001808311610ffd57829003601f168201915b50505050509080600601805461102f90611d83565b80601f016020809104026020016040519081016040528092919081815260200182805461105b90611d83565b80156110a85780601f1061107d576101008083540402835291602001916110a8565b820191906000526020600020905b81548152906001019060200180831161108b57829003601f168201915b5050505050908060070180546110bd90611d83565b80601f01602080910402602001604051908101604052809291908181526020018280546110e990611d83565b80156111365780601f1061110b57610100808354040283529160200191611136565b820191906000526020600020905b81548152906001019060200180831161111957829003601f168201915b505050505090806008015490806009015490508a565b60008787878787878760405160200161116b97969594939291906122a4565b6040516020818303038152906040528051906020012090506040518061010001604052808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281525060008a6040516111cd9190611d3d565b90815260200160405180910390206000820151816000015560208201518160010190816111fa91906121d2565b50604082015181600201908161121091906121d2565b50606082015181600301556080820151816004015560a082015181600501908161123a91906121d2565b5060c082015181600601908161125091906121d2565b5060e08201518160070155905050505050505050505050565b6060600082036112b0576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506112f4565b5b600082146112f3576000600a836112c89190612344565b9050600a836112d791906123a4565b92506112eb6112e5826112f9565b83611453565b9150506112b1565b5b919050565b606060006040518060400160405280601081526020017f3031323334353637383961626364656600000000000000000000000000000000815250905060008360405160200161134891906123d5565b60405160208183030381529060405290506000600167ffffffffffffffff81111561137657611375611618565b5b6040519080825280601f01601f1916602001820160405280156113a85781602001600182028036833780820191505090505b5090506000600183516113bb91906123f0565b905083600f60f81b8483815181106113d6576113d5612424565b5b602001015160f81c60f81b1660f81c60ff16815181106113f9576113f8612424565b5b602001015160f81c60f81b8260008151811061141857611417612424565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081945050505050919050565b60606000839050600083905060008151835161146f9190612453565b67ffffffffffffffff81111561148857611487611618565b5b6040519080825280601f01601f1916602001820160405280156114ba5781602001600182028036833780820191505090505b50905060008190506000805b855181101561154e578581815181106114e2576114e1612424565b5b602001015160f81c60f81b8383806114f990612487565b94508151811061150c5761150b612424565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061154690612487565b9150506114c6565b5060005b84518110156115da5784818151811061156e5761156d612424565b5b602001015160f81c60f81b83838061158590612487565b94508151811061159857611597612424565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806115d290612487565b915050611552565b50829550505050505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61165082611607565b810181811067ffffffffffffffff8211171561166f5761166e611618565b5b80604052505050565b60006116826115e9565b905061168e8282611647565b919050565b600067ffffffffffffffff8211156116ae576116ad611618565b5b6116b782611607565b9050602081019050919050565b82818337600083830152505050565b60006116e66116e184611693565b611678565b90508281526020810184848401111561170257611701611602565b5b61170d8482856116c4565b509392505050565b600082601f83011261172a576117296115fd565b5b813561173a8482602086016116d3565b91505092915050565b600060208284031215611759576117586115f3565b5b600082013567ffffffffffffffff811115611777576117766115f8565b5b61178384828501611715565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117c65780820151818401526020810190506117ab565b60008484015250505050565b60006117dd8261178c565b6117e78185611797565b93506117f78185602086016117a8565b61180081611607565b840191505092915050565b6000819050919050565b61181e8161180b565b82525050565b6000604082019050818103600083015261183e81856117d2565b905061184d6020830184611815565b9392505050565b6000819050919050565b61186781611854565b82525050565b600061010082019050611883600083018b61185e565b8181036020830152611895818a6117d2565b905081810360408301526118a981896117d2565b90506118b8606083018861185e565b6118c5608083018761185e565b81810360a08301526118d781866117d2565b905081810360c08301526118eb81856117d2565b90506118fa60e0830184611815565b9998505050505050505050565b61191081611854565b811461191b57600080fd5b50565b60008135905061192d81611907565b92915050565b6000806000806000806000806000806101408b8d031215611957576119566115f3565b5b60008b013567ffffffffffffffff811115611975576119746115f8565b5b6119818d828e01611715565b9a505060206119928d828e0161191e565b99505060408b013567ffffffffffffffff8111156119b3576119b26115f8565b5b6119bf8d828e01611715565b98505060608b013567ffffffffffffffff8111156119e0576119df6115f8565b5b6119ec8d828e01611715565b97505060808b013567ffffffffffffffff811115611a0d57611a0c6115f8565b5b611a198d828e01611715565b96505060a08b013567ffffffffffffffff811115611a3a57611a396115f8565b5b611a468d828e01611715565b95505060c08b013567ffffffffffffffff811115611a6757611a666115f8565b5b611a738d828e01611715565b94505060e08b013567ffffffffffffffff811115611a9457611a936115f8565b5b611aa08d828e01611715565b9350506101008b013567ffffffffffffffff811115611ac257611ac16115f8565b5b611ace8d828e01611715565b925050610120611ae08d828e0161191e565b9150509295989b9194979a5092959850565b600061014082019050611b08600083018d61185e565b8181036020830152611b1a818c6117d2565b90508181036040830152611b2e818b6117d2565b90508181036060830152611b42818a6117d2565b90508181036080830152611b5681896117d2565b905081810360a0830152611b6a81886117d2565b905081810360c0830152611b7e81876117d2565b905081810360e0830152611b9281866117d2565b9050611ba261010083018561185e565b611bb0610120830184611815565b9b9a5050505050505050505050565b600080600080600080600080610100898b031215611be057611bdf6115f3565b5b600089013567ffffffffffffffff811115611bfe57611bfd6115f8565b5b611c0a8b828c01611715565b9850506020611c1b8b828c0161191e565b975050604089013567ffffffffffffffff811115611c3c57611c3b6115f8565b5b611c488b828c01611715565b965050606089013567ffffffffffffffff811115611c6957611c686115f8565b5b611c758b828c01611715565b9550506080611c868b828c0161191e565b94505060a0611c978b828c0161191e565b93505060c089013567ffffffffffffffff811115611cb857611cb76115f8565b5b611cc48b828c01611715565b92505060e089013567ffffffffffffffff811115611ce557611ce46115f8565b5b611cf18b828c01611715565b9150509295985092959890939650565b600081905092915050565b6000611d178261178c565b611d218185611d01565b9350611d318185602086016117a8565b80840191505092915050565b6000611d498284611d0c565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d9b57607f821691505b602082108103611dae57611dad611d54565b5b50919050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000611dea600183611d01565b9150611df582611db4565b600182019050919050565b6000611e0c828a611d0c565b9150611e1782611ddd565b9150611e238289611d0c565b9150611e2e82611ddd565b9150611e3a8288611d0c565b9150611e4582611ddd565b9150611e518287611d0c565b9150611e5c82611ddd565b9150611e688286611d0c565b9150611e7382611ddd565b9150611e7f8285611d0c565b9150611e8a82611ddd565b9150611e968284611d0c565b915081905098975050505050505050565b6000611eb3828c611d0c565b9150611ebe82611ddd565b9150611eca828b611d0c565b9150611ed582611ddd565b9150611ee1828a611d0c565b9150611eec82611ddd565b9150611ef88289611d0c565b9150611f0382611ddd565b9150611f0f8288611d0c565b9150611f1a82611ddd565b9150611f268287611d0c565b9150611f3182611ddd565b9150611f3d8286611d0c565b9150611f4882611ddd565b9150611f548285611d0c565b9150611f5f82611ddd565b9150611f6b8284611d0c565b91508190509a9950505050505050505050565b6000819050919050565b611f99611f9482611854565b611f7e565b82525050565b6000611fab828c611f88565b602082019150611fbb828b611d0c565b9150611fc7828a611d0c565b9150611fd38289611d0c565b9150611fdf8288611d0c565b9150611feb8287611d0c565b9150611ff78286611d0c565b91506120038285611d0c565b915061200f8284611f88565b6020820191508190509a9950505050505050505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026120887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261204b565b612092868361204b565b95508019841693508086168417925050509392505050565b6000819050919050565b60006120cf6120ca6120c584611854565b6120aa565b611854565b9050919050565b6000819050919050565b6120e9836120b4565b6120fd6120f5826120d6565b848454612058565b825550505050565b600090565b612112612105565b61211d8184846120e0565b505050565b5b818110156121415761213660008261210a565b600181019050612123565b5050565b601f8211156121865761215781612026565b6121608461203b565b8101602085101561216f578190505b61218361217b8561203b565b830182612122565b50505b505050565b600082821c905092915050565b60006121a96000198460080261218b565b1980831691505092915050565b60006121c28383612198565b9150826002028217905092915050565b6121db8261178c565b67ffffffffffffffff8111156121f4576121f3611618565b5b6121fe8254611d83565b612209828285612145565b600060209050601f83116001811461223c576000841561222a578287015190505b61223485826121b6565b86555061229c565b601f19841661224a86612026565b60005b828110156122725784890151825560018201915060208501945060208101905061224d565b8683101561228f578489015161228b601f891682612198565b8355505b6001600288020188555050505b505050505050565b60006122b0828a611f88565b6020820191506122c08289611d0c565b91506122cc8288611d0c565b91506122d88287611f88565b6020820191506122e88286611f88565b6020820191506122f88285611d0c565b91506123048284611d0c565b915081905098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061234f82611854565b915061235a83611854565b92508261236a57612369612315565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123af82611854565b91506123ba83611854565b9250826123ca576123c9612315565b5b828204905092915050565b60006123e18284611f88565b60208201915081905092915050565b60006123fb82611854565b915061240683611854565b925082820390508181111561241e5761241d612375565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061245e82611854565b915061246983611854565b925082820190508082111561248157612480612375565b5b92915050565b600061249282611854565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124c4576124c3612375565b5b60018201905091905056fea2646970667358221220764f319f07e6fd6551a9f5e4bb165faea4a122b618ff770ac89bf6d12bbe6d0664736f6c63430008120033";

    public static final String FUNC_ADDBEEF = "addBeef";

    public static final String FUNC_ADDCOW = "addCow";

    public static final String FUNC_BEEF = "beef";

    public static final String FUNC_CATTLE = "cattle";

    public static final String FUNC_QUERYBEEF = "queryBeef";

    public static final String FUNC_QUERYCOW = "queryCow";

    @Deprecated
    protected Abroad(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        super(BINARY, contractAddress, web3j, credentials, gasPrice, gasLimit);
    }

    protected Abroad(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        super(BINARY, contractAddress, web3j, credentials, contractGasProvider);
    }

    @Deprecated
    protected Abroad(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        super(BINARY, contractAddress, web3j, transactionManager, gasPrice, gasLimit);
    }

    protected Abroad(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        super(BINARY, contractAddress, web3j, transactionManager, contractGasProvider);
    }

    public RemoteFunctionCall<TransactionReceipt> addBeef(String beef_key, BigInteger beef_id, String breed, String process_time, String process_place, String process_person, String transport_time, String transport_place, String transport_person, BigInteger ox_id) {
        final Function function = new Function(
                FUNC_ADDBEEF,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(beef_key),
                new org.web3j.abi.datatypes.generated.Uint256(beef_id),
                new org.web3j.abi.datatypes.Utf8String(breed),
                new org.web3j.abi.datatypes.Utf8String(process_time),
                new org.web3j.abi.datatypes.Utf8String(process_place),
                new org.web3j.abi.datatypes.Utf8String(process_person),
                new org.web3j.abi.datatypes.Utf8String(transport_time),
                new org.web3j.abi.datatypes.Utf8String(transport_place),
                new org.web3j.abi.datatypes.Utf8String(transport_person),
                new org.web3j.abi.datatypes.generated.Uint256(ox_id)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> addCow(String ox_key, BigInteger ox_id, String breed, String end_time, BigInteger feeding_period, BigInteger weight, String location, String feed_person) {
        final Function function = new Function(
                FUNC_ADDCOW,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(ox_key),
                new org.web3j.abi.datatypes.generated.Uint256(ox_id),
                new org.web3j.abi.datatypes.Utf8String(breed),
                new org.web3j.abi.datatypes.Utf8String(end_time),
                new org.web3j.abi.datatypes.generated.Uint256(feeding_period),
                new org.web3j.abi.datatypes.generated.Uint256(weight),
                new org.web3j.abi.datatypes.Utf8String(location),
                new org.web3j.abi.datatypes.Utf8String(feed_person)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<Tuple10<BigInteger, String, String, String, String, String, String, String, BigInteger, byte[]>> beef(String param0) {
        final Function function = new Function(FUNC_BEEF,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(param0)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Uint256>() {}, new TypeReference<Bytes32>() {}));
        return new RemoteFunctionCall<Tuple10<BigInteger, String, String, String, String, String, String, String, BigInteger, byte[]>>(function,
                new Callable<Tuple10<BigInteger, String, String, String, String, String, String, String, BigInteger, byte[]>>() {
                    @Override
                    public Tuple10<BigInteger, String, String, String, String, String, String, String, BigInteger, byte[]> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple10<BigInteger, String, String, String, String, String, String, String, BigInteger, byte[]>(
                                (BigInteger) results.get(0).getValue(),
                                (String) results.get(1).getValue(),
                                (String) results.get(2).getValue(),
                                (String) results.get(3).getValue(),
                                (String) results.get(4).getValue(),
                                (String) results.get(5).getValue(),
                                (String) results.get(6).getValue(),
                                (String) results.get(7).getValue(),
                                (BigInteger) results.get(8).getValue(),
                                (byte[]) results.get(9).getValue());
                    }
                });
    }

    public RemoteFunctionCall<Tuple8<BigInteger, String, String, BigInteger, BigInteger, String, String, byte[]>> cattle(String param0) {
        final Function function = new Function(FUNC_CATTLE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(param0)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Utf8String>() {}, new TypeReference<Bytes32>() {}));
        return new RemoteFunctionCall<Tuple8<BigInteger, String, String, BigInteger, BigInteger, String, String, byte[]>>(function,
                new Callable<Tuple8<BigInteger, String, String, BigInteger, BigInteger, String, String, byte[]>>() {
                    @Override
                    public Tuple8<BigInteger, String, String, BigInteger, BigInteger, String, String, byte[]> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple8<BigInteger, String, String, BigInteger, BigInteger, String, String, byte[]>(
                                (BigInteger) results.get(0).getValue(),
                                (String) results.get(1).getValue(),
                                (String) results.get(2).getValue(),
                                (BigInteger) results.get(3).getValue(),
                                (BigInteger) results.get(4).getValue(),
                                (String) results.get(5).getValue(),
                                (String) results.get(6).getValue(),
                                (byte[]) results.get(7).getValue());
                    }
                });
    }

    public RemoteFunctionCall<Tuple2<String, byte[]>> queryBeef(String beef_key) {
        final Function function = new Function(FUNC_QUERYBEEF,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(beef_key)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}, new TypeReference<Bytes32>() {}));
        return new RemoteFunctionCall<Tuple2<String, byte[]>>(function,
                new Callable<Tuple2<String, byte[]>>() {
                    @Override
                    public Tuple2<String, byte[]> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple2<String, byte[]>(
                                (String) results.get(0).getValue(),
                                (byte[]) results.get(1).getValue());
                    }
                });
    }

    public RemoteFunctionCall<Tuple2<String, byte[]>> queryCow(String ox_key) {
        final Function function = new Function(FUNC_QUERYCOW,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(ox_key)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}, new TypeReference<Bytes32>() {}));
        return new RemoteFunctionCall<Tuple2<String, byte[]>>(function,
                new Callable<Tuple2<String, byte[]>>() {
                    @Override
                    public Tuple2<String, byte[]> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple2<String, byte[]>(
                                (String) results.get(0).getValue(),
                                (byte[]) results.get(1).getValue());
                    }
                });
    }

    @Deprecated
    public static Abroad load(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        return new Abroad(contractAddress, web3j, credentials, gasPrice, gasLimit);
    }

    @Deprecated
    public static Abroad load(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        return new Abroad(contractAddress, web3j, transactionManager, gasPrice, gasLimit);
    }

    public static Abroad load(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        return new Abroad(contractAddress, web3j, credentials, contractGasProvider);
    }

    public static Abroad load(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        return new Abroad(contractAddress, web3j, transactionManager, contractGasProvider);
    }

    public static RemoteCall<Abroad> deploy(Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        return deployRemoteCall(Abroad.class, web3j, credentials, contractGasProvider, BINARY, "");
    }

    @Deprecated
    public static RemoteCall<Abroad> deploy(Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        return deployRemoteCall(Abroad.class, web3j, credentials, gasPrice, gasLimit, BINARY, "");
    }

    public static RemoteCall<Abroad> deploy(Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        return deployRemoteCall(Abroad.class, web3j, transactionManager, contractGasProvider, BINARY, "");
    }

    @Deprecated
    public static RemoteCall<Abroad> deploy(Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        return deployRemoteCall(Abroad.class, web3j, transactionManager, gasPrice, gasLimit, BINARY, "");
    }
}
